﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System.Runtime.InteropServices;
using System.Text;

namespace Lcsoft.TemplateEngine.Core
{
	/// <summary>
	/// 为老陈Asp.Net模板引擎生成的代码提供自定义运行时支持的接口。
	/// </summary>
	[ComVisible(true)]
	public interface IRuntimeHandler
	{
		/// <summary>
		/// 在 <code>base.OnInit(e);</code> 之前执行的方法。
		/// </summary>
		void BeforeOnInit();

		/// <summary>
		/// 在 <code>base.OnInit(e);</code> 之后执行的方法。
		/// </summary>
		void AfterOnInit();

		/// <summary>
		/// 在模板引擎生成的代码开始执行之前运行的方法。
		/// </summary>
		/// <param name="document">包含要输出的代码文档的内容的字符串。</param>
		void BeforeCreateDocument(ref StringBuilder document);

		/// <summary>
		/// 在模板引擎生成的代码结束执行之后运行的方法。
		/// </summary>
		/// <param name="document">包含要输出的代码文档的内容的字符串。</param>
		void AfterCreateDocument(ref StringBuilder document);
	}
}
